#!/bin/bash

# 设置目录路径
transcript_dir="transcript"
wav_dir="wav"

# 检查transcript目录是否存在
if [ ! -d "$transcript_dir" ]; then
    echo "错误：transcript目录不存在！"
    exit 1
fi

# 创建要保留的文件名列表
keep_files=()

# 从wav/dev目录收集子目录名
if [ -d "$wav_dir/dev" ]; then
    for dir in "$wav_dir/dev"/*/; do
        dir_name=$(basename "$dir")
        keep_files+=("$dir_name")
    done
fi

# 从wav/train目录收集子目录名
if [ -d "$wav_dir/train" ]; then
    for dir in "$wav_dir/train"/*/; do
        dir_name=$(basename "$dir")
        keep_files+=("$dir_name")
    done
fi

# 从wav/test目录收集子目录名
if [ -d "$wav_dir/test" ]; then
    for dir in "$wav_dir/test"/*/; do
        dir_name=$(basename "$dir")
        keep_files+=("$dir_name")
    done
fi

# 转换为关联数组以便快速查找
declare -A keep_map
for file in "${keep_files[@]}"; do
    keep_map["$file"]=1
done

# 遍历transcript目录中的文件
for file in "$transcript_dir"/*.txt; do
    if [ -f "$file" ]; then
        # 获取不带扩展名的文件名
        filename=$(basename "$file" .txt)
        
        # 检查是否应该保留此文件
        if [[ -z ${keep_map["$filename"]} ]]; then
            echo "删除: $file"
            rm "$file"
        else
            echo "保留: $file"
        fi
    fi
done

echo "操作完成！"    